<script>
    // 1.声明对象
    var person = {
            type: '人类',
            say: function() {
                console.log('我是' + this.type);
            }
        }
        // 2.使用 Object.create创建的新对象
    var obj = Object.create(person);
    console.log('obj', obj); // 存在这样的关系: obj.__proto__ === person;
</script>


<script>
    // 1.声明一个函数
    function madeObj(o) {
        // 2.根据传入的对象使用Object.create创建一个对象, 新的对象继承了传入对象的一切属性和方法
        var obj = Object.create(o); // obj.__proto__ === o;
        // 3.给新的对象添加方法sayName 
        obj.sayName = function() {
                console.log(this.name);
            }
            // 4.返回新的对象 
        return obj;
    }

    // person相当于原型对象的角色
    var person = {
        name: '人',
        nation: '中国',
        sayHello: function() {
            console.log('hello');
        }
    }

    //5.调用madeObj方法创建对象
    var p = madeObj(person);
    console.log('p', p); // p对象继承了person对象的属性和方法
    p.sayName();
</script>